package com.lynn.salary.service;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.lynn.salary.entity.Employee;
import com.lynn.salary.entity.Role;
import com.lynn.salary.entity.SystemArgument;
import com.lynn.salary.pojo.TreeNode;

public interface IEmployeeService  extends IBaseEntityService{
	Integer totalCount() throws Exception;
	List<Map<String,Object>> findEmployeeByLimit(Integer currentPage,Integer numPerPage) throws Exception;
	void save(Employee emp) throws Exception;
	void delete(String deleteId) throws Exception;
	Employee findEmployeeById(String editId) throws Exception;
	void updateEmployee(Employee emp) throws Exception;
	List<SystemArgument> findByType(String selectType)throws Exception;
	Employee findById(Serializable id) throws Exception;
	Employee checkLoginUser(String username, String password) throws Exception;
	/**
	 * 查找该员工所有角色
	 * @param eid   员工id
	 * @return
	 * @throws Exception
	 */
	List<Role> getRoles(String eid) throws Exception;
	List<TreeNode> findAll() throws Exception;
	

	List<Role> findEmpNotContainRole(String empid) throws Exception;
	void updateEmpRoles(List<String> newRoles,String empId) throws Exception;
}
